package com.baturu.vin.honda.dto;

import com.baturu.vin.base.dto.BaseVinAnalyseResultDTO;
import com.baturu.vin.dto.superEPC.SEPCCarTypeDetailDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections.CollectionUtils;

import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * vin信息DTO
 *
 * @author jiangxinlei
 * @Time 2017/6/6.
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class HondaVinInfoDTO extends BaseVinAnalyseResultDTO {

    private String btrId;

    private String vinCode;

    private String carSystem;

    /**
     * 车型配置id
     */
    private Integer hmodtyp;

    /**
     * 车型/级别
     */
    private String cmodnamepc;

    /**
     * 车型年
     */
    private String dmodyr;

    private String xcardrs;

    /**
     * 变速箱种类
     */
    private String ctrsmtyp;

    private String carea;

    private String cmodtypfrm;

    private String chomolopf;

    /**
     * vin前11位(前8位+3位辨识符)
     */
    private String nfrmpf;

    /**
     * vin后8位起始值
     */
    private String nfrmseqepcstrt;

    /**
     * vin后8位结束值
     */
    private String nfrmseqepcend;

    private String cmodtypengn;

    /**
     * 发动机型号
     */
    private String nengnpf;

    private String nengnseqepcstrt;

    private String nengnseqepcend;

    private String xgradefulnam;

    private String npl;

    private String disk;

    /**
     * 生产地区
     */
    private String cmftrepc;

    private String suffix8;

    Set<HondaVinMultiInfoDTO> vinMultiInfoDTO = Collections.emptySet();

    Set<String> nplblks = Collections.emptySet();

    Set<Integer> hmodtyps;

    /**
     * 备注
     */
    List<String> remark;

    /**
     * btr品牌
     */
    String btrBrand;

    /**
     * 车品牌名称
     * 本田,讴歌,思铭
     */
    private String brand;

    public List<SEPCCarTypeDetailDTO> getReMarkList(){
        if (CollectionUtils.isEmpty(remark)) {
            return Collections.emptyList();
        }
        return remark.stream()
                .map(remark->SEPCCarTypeDetailDTO.builder().code(remark).desc(remark).value("✓").build())
                .collect(Collectors.toList());
    }
}
